// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   GLGraphics.java

package keel.gfx;

//import java.io.PrintStream;
//import java.security.AccessController;
//import java.security.PrivilegedAction;

import backstage.runtime.KeelRuntimeSWTImpl;

// Referenced classes of package keel.gfx:
//            GLContext, NativeArray

public abstract class GLGraphics
{

    GLGraphics()
    {
    }

    public GLGraphics(GLContext glc)
    {
        this(glc, false, null);
    }

    protected GLGraphics(GLContext glc, boolean p, GLGraphics g)
    {
        context = glc;
        isphantom = p;
        entity = g;
    }

    public abstract GLGraphics createPhantom();

    public GLContext getGLContext()
    {
        return context;
    }

//    private static String glGetStringPrivete(int i)
//    {
//    	return KeelRuntimeSWTImpl.context.getGL().glGetString(i);
//    }

    public abstract void glAccum(int i, float f);

    public abstract void glAlphaFunc(int i, float f);

    public abstract boolean glAreTexturesResident(int i, int ai[], boolean aflag[]);

    public abstract void glArrayElement(int i);

    public abstract void glBegin(int i);

    public abstract void glBindTexture(int i, int j);

    public abstract void glBitmap(int i, int j, float f, float f1, float f2, float f3, byte abyte0[]);

    public abstract void glBlendFunc(int i, int j);

    public abstract void glCallList(int i);

    public abstract void glCallLists(int i, int j, byte abyte0[]);

    public abstract void glCallLists(int i, int j, char ac[]);

    public abstract void glCallLists(int i, int j, short aword0[]);

    public abstract void glCallLists(int i, int j, int ai[]);

    public abstract void glCallLists(int i, int j, float af[]);

    public abstract void glClear(int i);

    public abstract void glClearAccum(float f, float f1, float f2, float f3);

    public abstract void glClearColor(float f, float f1, float f2, float f3);

    public abstract void glClearDepth(double d);

    public abstract void glClearIndex(float f);

    public abstract void glClearStencil(int i);

    public abstract void glClipPlane(int i, double ad[]);

    public abstract void glColor3b(byte byte0, byte byte1, byte byte2);

    public abstract void glColor3bv(byte abyte0[]);

    public abstract void glColor3d(double d, double d1, double d2);

    public abstract void glColor3dv(double ad[]);

    public abstract void glColor3f(float f, float f1, float f2);

    public abstract void glColor3fv(float af[]);

    public abstract void glColor3i(int i, int j, int k);

    public abstract void glColor3iv(int ai[]);

    public abstract void glColor3s(short word0, short word1, short word2);

    public abstract void glColor3sv(short aword0[]);

    public abstract void glColor3ub(byte byte0, byte byte1, byte byte2);

    public abstract void glColor3ubv(byte abyte0[]);

    public abstract void glColor3ui(int i, int j, int k);

    public abstract void glColor3uiv(int ai[]);

    public abstract void glColor3us(short word0, short word1, short word2);

    public abstract void glColor3usv(short aword0[]);

    public abstract void glColor4b(byte byte0, byte byte1, byte byte2, byte byte3);

    public abstract void glColor4bv(byte abyte0[]);

    public abstract void glColor4d(double d, double d1, double d2, double d3);

    public abstract void glColor4dv(double ad[]);

    public abstract void glColor4f(float f, float f1, float f2, float f3);

    public abstract void glColor4fv(float af[]);

    public abstract void glColor4i(int i, int j, int k, int l);

    public abstract void glColor4iv(int ai[]);

    public abstract void glColor4s(short word0, short word1, short word2, short word3);

    public abstract void glColor4sv(short aword0[]);

    public abstract void glColor4ub(byte byte0, byte byte1, byte byte2, byte byte3);

    public abstract void glColor4ubv(byte abyte0[]);

    public abstract void glColor4ui(int i, int j, int k, int l);

    public abstract void glColor4uiv(int ai[]);

    public abstract void glColor4us(short word0, short word1, short word2, short word3);

    public abstract void glColor4usv(short aword0[]);

    public abstract void glColorMask(boolean flag, boolean flag1, boolean flag2, boolean flag3);

    public abstract void glColorMaterial(int i, int j);

    public abstract void glColorPointer(int i, int j, NativeArray nativearray);

    public abstract void glCopyPixels(int i, int j, int k, int l, int i1);

    public abstract void glCopyTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1);

    public abstract void glCopyTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1);

    public abstract void glCopyTexSubImage1D(int i, int j, int k, int l, int i1, int j1);

    public abstract void glCopyTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1);

    public abstract void glCullFace(int i);

    public abstract void glDeleteLists(int i, int j);

    public abstract void glDeleteTextures(int i, int ai[]);

    public abstract void glDepthFunc(int i);

    public abstract void glDepthMask(boolean flag);

    public abstract void glDepthRange(double d, double d1);

    public abstract void glDisable(int i);

    public abstract void glDisableClientState(int i);

    public abstract void glDrawArrays(int i, int j, int k);

    public abstract void glDrawBuffer(int i);

    public abstract void glDrawElements(int i, int j, int k, byte abyte0[]);

    public abstract void glDrawElements(int i, int j, int k, char ac[]);

    public abstract void glDrawElements(int i, int j, int k, short aword0[]);

    public abstract void glDrawElements(int i, int j, int k, int ai[]);

    public abstract void glDrawPixels(int i, int j, int k, int l, byte abyte0[]);

    public abstract void glDrawPixels(int i, int j, int k, int l, char ac[]);

    public abstract void glDrawPixels(int i, int j, int k, int l, short aword0[]);

    public abstract void glDrawPixels(int i, int j, int k, int l, int ai[]);

    public abstract void glDrawPixels(int i, int j, int k, int l, float af[]);

    public abstract void glEdgeFlag(boolean flag);

    public abstract void glEdgeFlagPointer(int i, NativeArray nativearray);

    public abstract void glEdgeFlagv(boolean aflag[]);

    public abstract void glEnable(int i);

    public abstract void glEnableClientState(int i);

    public abstract void glEnd();

    public abstract void glEndList();

    public abstract void glEvalCoord1d(double d);

    public abstract void glEvalCoord1dv(double ad[]);

    public abstract void glEvalCoord1f(float f);

    public abstract void glEvalCoord1fv(float af[]);

    public abstract void glEvalCoord2d(double d, double d1);

    public abstract void glEvalCoord2dv(double ad[]);

    public abstract void glEvalCoord2f(float f, float f1);

    public abstract void glEvalCoord2fv(float af[]);

    public abstract void glEvalMesh1(int i, int j, int k);

    public abstract void glEvalMesh2(int i, int j, int k, int l, int i1);

    public abstract void glEvalPoint1(int i);

    public abstract void glEvalPoint2(int i, int j);

    public abstract void glFeedbackBuffer(int i, int j, float af[]);

    public abstract void glFinish();

    public abstract void glFlush();

    public abstract void glFogf(int i, float f);

    public abstract void glFogfv(int i, float af[]);

    public abstract void glFogi(int i, int j);

    public abstract void glFogiv(int i, int ai[]);

    public abstract void glFrontFace(int i);

    public abstract void glFrustum(double d, double d1, double d2, double d3, double d4, double d5);

    public abstract int glGenLists(int i);

    public abstract void glGenTextures(int i, int ai[]);

    public abstract void glGetBooleanv(int i, boolean aflag[]);

    public abstract void glGetClipPlane(int i, double ad[]);

    public abstract void glGetDoublev(int i, double ad[]);

    public abstract int glGetError();

    public abstract void glGetFloatv(int i, float af[]);

    public abstract void glGetIntegerv(int i, int ai[]);

    public abstract void glGetLightfv(int i, int j, float af[]);

    public abstract void glGetLightiv(int i, int j, int ai[]);

    public abstract void glGetMapdv(int i, int j, double ad[]);

    public abstract void glGetMapfv(int i, int j, float af[]);

    public abstract void glGetMapiv(int i, int j, int ai[]);

    public abstract void glGetMaterialfv(int i, int j, float af[]);

    public abstract void glGetMaterialiv(int i, int j, int ai[]);

    public abstract void glGetPixelMapfv(int i, float af[]);

    public abstract void glGetPixelMapuiv(int i, int ai[]);

    public abstract void glGetPixelMapusv(int i, short aword0[]);

    public abstract void glGetPointerv(int i, int ai[]);

    public abstract void glGetPolygonStipple(byte abyte0[]);

    public abstract String glGetString(int i);

    public abstract void glGetTexEnvfv(int i, int j, float af[]);

    public abstract void glGetTexEnviv(int i, int j, int ai[]);

    public abstract void glGetTexGendv(int i, int j, double ad[]);

    public abstract void glGetTexGenfv(int i, int j, float af[]);

    public abstract void glGetTexGeniv(int i, int j, int ai[]);

    public abstract void glGetTexImage(int i, int j, int k, int l, byte abyte0[]);

    public abstract void glGetTexImage(int i, int j, int k, int l, char ac[]);

    public abstract void glGetTexImage(int i, int j, int k, int l, short aword0[]);

    public abstract void glGetTexImage(int i, int j, int k, int l, int ai[]);

    public abstract void glGetTexImage(int i, int j, int k, int l, float af[]);

    public abstract void glGetTexLevelParameterfv(int i, int j, int k, float af[]);

    public abstract void glGetTexLevelParameteriv(int i, int j, int k, int ai[]);

    public abstract void glGetTexParameterfv(int i, int j, float af[]);

    public abstract void glGetTexParameteriv(int i, int j, int ai[]);

    public abstract void glHint(int i, int j);

    public abstract void glIndexMask(int i);

    public abstract void glIndexPointer(int i, NativeArray nativearray);

    public abstract void glIndexd(double d);

    public abstract void glIndexdv(double ad[]);

    public abstract void glIndexf(float f);

    public abstract void glIndexfv(float af[]);

    public abstract void glIndexi(int i);

    public abstract void glIndexiv(int ai[]);

    public abstract void glIndexs(short word0);

    public abstract void glIndexsv(short aword0[]);

    public abstract void glIndexub(byte byte0);

    public abstract void glIndexubv(byte abyte0[]);

    public abstract void glInitNames();

    public abstract void glInterleavedArrays(int i, int j, NativeArray nativearray);

    public abstract boolean glIsEnabled(int i);

    public abstract boolean glIsList(int i);

    public abstract boolean glIsTexture(int i);

    public abstract void glLightModelf(int i, float f);

    public abstract void glLightModelfv(int i, float af[]);

    public abstract void glLightModeli(int i, int j);

    public abstract void glLightModeliv(int i, int ai[]);

    public abstract void glLightf(int i, int j, float f);

    public abstract void glLightfv(int i, int j, float af[]);

    public abstract void glLighti(int i, int j, int k);

    public abstract void glLightiv(int i, int j, int ai[]);

    public abstract void glLineStipple(int i, short word0);

    public abstract void glLineWidth(float f);

    public abstract void glListBase(int i);

    public abstract void glLoadIdentity();

    public abstract void glLoadMatrixd(double ad[]);

    public abstract void glLoadMatrixf(float af[]);

    public abstract void glLoadName(int i);

    public abstract void glLogicOp(int i);

    public abstract void glMap1d(int i, double d, double d1, int j, int k, 
            double ad[]);

    public abstract void glMap1f(int i, float f, float f1, int j, int k, float af[]);

    public abstract void glMap2d(int i, double d, double d1, int j, int k, 
            double d2, double d3, int l, int i1, double ad[]);

    public abstract void glMap2f(int i, float f, float f1, int j, int k, float f2, float f3, 
            int l, int i1, float af[]);

    public abstract void glMapGrid1d(int i, double d, double d1);

    public abstract void glMapGrid1f(int i, float f, float f1);

    public abstract void glMapGrid2d(int i, double d, double d1, int j, double d2, double d3);

    public abstract void glMapGrid2f(int i, float f, float f1, int j, float f2, float f3);

    public abstract void glMaterialf(int i, int j, float f);

    public abstract void glMaterialfv(int i, int j, float af[]);

    public abstract void glMateriali(int i, int j, int k);

    public abstract void glMaterialiv(int i, int j, int ai[]);

    public abstract void glMatrixMode(int i);

    public abstract void glMultMatrixd(double ad[]);

    public abstract void glMultMatrixf(float af[]);

    public abstract void glNewList(int i, int j);

    public abstract void glNormal3b(byte byte0, byte byte1, byte byte2);

    public abstract void glNormal3bv(byte abyte0[]);

    public abstract void glNormal3d(double d, double d1, double d2);

    public abstract void glNormal3dv(double ad[]);

    public abstract void glNormal3f(float f, float f1, float f2);

    public abstract void glNormal3fv(float af[]);

    public abstract void glNormal3i(int i, int j, int k);

    public abstract void glNormal3iv(int ai[]);

    public abstract void glNormal3s(short word0, short word1, short word2);

    public abstract void glNormal3sv(short aword0[]);

    public abstract void glNormalPointer(int i, NativeArray nativearray);

    public abstract void glOrtho(double d, double d1, double d2, double d3, double d4, double d5);

    public abstract void glPassThrough(float f);

    public abstract void glPixelMapfv(int i, int j, float af[]);

    public abstract void glPixelMapuiv(int i, int j, int ai[]);

    public abstract void glPixelMapusv(int i, int j, short aword0[]);

    public abstract void glPixelStoref(int i, float f);

    public abstract void glPixelStorei(int i, int j);

    public abstract void glPixelTransferf(int i, float f);

    public abstract void glPixelTransferi(int i, int j);

    public abstract void glPixelZoom(float f, float f1);

    public abstract void glPointSize(float f);

    public abstract void glPolygonMode(int i, int j);

    public abstract void glPolygonOffset(float f, float f1);

    public abstract void glPolygonStipple(byte abyte0[]);

    public abstract void glPopAttrib();

    public abstract void glPopClientAttrib();

    public abstract void glPopMatrix();

    public abstract void glPopName();

    public abstract void glPrioritizeTextures(int i, int ai[], float af[]);

    public abstract void glPushAttrib(int i);

    public abstract void glPushClientAttrib(int i);

    public abstract void glPushMatrix();

    public abstract void glPushName(int i);

    public abstract void glRasterPos2d(double d, double d1);

    public abstract void glRasterPos2dv(double ad[]);

    public abstract void glRasterPos2f(float f, float f1);

    public abstract void glRasterPos2fv(float af[]);

    public abstract void glRasterPos2i(int i, int j);

    public abstract void glRasterPos2iv(int ai[]);

    public abstract void glRasterPos2s(short word0, short word1);

    public abstract void glRasterPos2sv(short aword0[]);

    public abstract void glRasterPos3d(double d, double d1, double d2);

    public abstract void glRasterPos3dv(double ad[]);

    public abstract void glRasterPos3f(float f, float f1, float f2);

    public abstract void glRasterPos3fv(float af[]);

    public abstract void glRasterPos3i(int i, int j, int k);

    public abstract void glRasterPos3iv(int ai[]);

    public abstract void glRasterPos3s(short word0, short word1, short word2);

    public abstract void glRasterPos3sv(short aword0[]);

    public abstract void glRasterPos4d(double d, double d1, double d2, double d3);

    public abstract void glRasterPos4dv(double ad[]);

    public abstract void glRasterPos4f(float f, float f1, float f2, float f3);

    public abstract void glRasterPos4fv(float af[]);

    public abstract void glRasterPos4i(int i, int j, int k, int l);

    public abstract void glRasterPos4iv(int ai[]);

    public abstract void glRasterPos4s(short word0, short word1, short word2, short word3);

    public abstract void glRasterPos4sv(short aword0[]);

    public abstract void glReadBuffer(int i);

    public abstract void glReadPixels(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract void glReadPixels(int i, int j, int k, int l, int i1, int j1, char ac[]);

    public abstract void glReadPixels(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract void glReadPixels(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glReadPixels(int i, int j, int k, int l, int i1, int j1, float af[]);

    public abstract void glRectd(double d, double d1, double d2, double d3);

    public abstract void glRectdv(double ad[], double ad1[]);

    public abstract void glRectf(float f, float f1, float f2, float f3);

    public abstract void glRectfv(float af[], float af1[]);

    public abstract void glRecti(int i, int j, int k, int l);

    public abstract void glRectiv(int ai[], int ai1[]);

    public abstract void glRects(short word0, short word1, short word2, short word3);

    public abstract void glRectsv(short aword0[], short aword1[]);

    public abstract int glRenderMode(int i);

    public abstract void glRotated(double d, double d1, double d2, double d3);

    public abstract void glRotatef(float f, float f1, float f2, float f3);

    public abstract void glScaled(double d, double d1, double d2);

    public abstract void glScalef(float f, float f1, float f2);

    public abstract void glScissor(int i, int j, int k, int l);

    public abstract void glSelectBuffer(int i, int ai[]);

    public abstract void glShadeModel(int i);

    public abstract void glStencilFunc(int i, int j, int k);

    public abstract void glStencilMask(int i);

    public abstract void glStencilOp(int i, int j, int k);

    public abstract void glTexCoord1d(double d);

    public abstract void glTexCoord1dv(double ad[]);

    public abstract void glTexCoord1f(float f);

    public abstract void glTexCoord1fv(float af[]);

    public abstract void glTexCoord1i(int i);

    public abstract void glTexCoord1iv(int ai[]);

    public abstract void glTexCoord1s(short word0);

    public abstract void glTexCoord1sv(short aword0[]);

    public abstract void glTexCoord2d(double d, double d1);

    public abstract void glTexCoord2dv(double ad[]);

    public abstract void glTexCoord2f(float f, float f1);

    public abstract void glTexCoord2fv(float af[]);

    public abstract void glTexCoord2i(int i, int j);

    public abstract void glTexCoord2iv(int ai[]);

    public abstract void glTexCoord2s(short word0, short word1);

    public abstract void glTexCoord2sv(short aword0[]);

    public abstract void glTexCoord3d(double d, double d1, double d2);

    public abstract void glTexCoord3dv(double ad[]);

    public abstract void glTexCoord3f(float f, float f1, float f2);

    public abstract void glTexCoord3fv(float af[]);

    public abstract void glTexCoord3i(int i, int j, int k);

    public abstract void glTexCoord3iv(int ai[]);

    public abstract void glTexCoord3s(short word0, short word1, short word2);

    public abstract void glTexCoord3sv(short aword0[]);

    public abstract void glTexCoord4d(double d, double d1, double d2, double d3);

    public abstract void glTexCoord4dv(double ad[]);

    public abstract void glTexCoord4f(float f, float f1, float f2, float f3);

    public abstract void glTexCoord4fv(float af[]);

    public abstract void glTexCoord4i(int i, int j, int k, int l);

    public abstract void glTexCoord4iv(int ai[]);

    public abstract void glTexCoord4s(short word0, short word1, short word2, short word3);

    public abstract void glTexCoord4sv(short aword0[]);

    public abstract void glTexCoordPointer(int i, int j, NativeArray nativearray);

    public abstract void glTexEnvf(int i, int j, float f);

    public abstract void glTexEnvfv(int i, int j, float af[]);

    public abstract void glTexEnvi(int i, int j, int k);

    public abstract void glTexEnviv(int i, int j, int ai[]);

    public abstract void glTexGend(int i, int j, double d);

    public abstract void glTexGendv(int i, int j, double ad[]);

    public abstract void glTexGenf(int i, int j, float f);

    public abstract void glTexGenfv(int i, int j, float af[]);

    public abstract void glTexGeni(int i, int j, int k);

    public abstract void glTexGeniv(int i, int j, int ai[]);

    public abstract void glTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1, 
            byte abyte0[]);

    public abstract void glTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1, 
            char ac[]);

    public abstract void glTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1, 
            short aword0[]);

    public abstract void glTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int ai[]);

    public abstract void glTexImage1D(int i, int j, int k, int l, int i1, int j1, int k1, 
            float af[]);

    public abstract void glTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, byte abyte0[]);

    public abstract void glTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, char ac[]);

    public abstract void glTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, short aword0[]);

    public abstract void glTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int ai[]);

    public abstract void glTexImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, float af[]);

    public abstract void glTexParameterf(int i, int j, float f);

    public abstract void glTexParameterfv(int i, int j, float af[]);

    public abstract void glTexParameteri(int i, int j, int k);

    public abstract void glTexParameteriv(int i, int j, int ai[]);

    public abstract void glTexSubImage1D(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract void glTexSubImage1D(int i, int j, int k, int l, int i1, int j1, char ac[]);

    public abstract void glTexSubImage1D(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract void glTexSubImage1D(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glTexSubImage1D(int i, int j, int k, int l, int i1, int j1, float af[]);

    public abstract void glTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, byte abyte0[]);

    public abstract void glTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, char ac[]);

    public abstract void glTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, short aword0[]);

    public abstract void glTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int ai[]);

    public abstract void glTexSubImage2D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, float af[]);

    public abstract void glTranslated(double d, double d1, double d2);

    public abstract void glTranslatef(float f, float f1, float f2);

    public abstract void glVertex2d(double d, double d1);

    public abstract void glVertex2dv(double ad[]);

    public abstract void glVertex2f(float f, float f1);

    public abstract void glVertex2fv(float af[]);

    public abstract void glVertex2i(int i, int j);

    public abstract void glVertex2iv(int ai[]);

    public abstract void glVertex2s(short word0, short word1);

    public abstract void glVertex2sv(short aword0[]);

    public abstract void glVertex3d(double d, double d1, double d2);

    public abstract void glVertex3dv(double ad[]);

    public abstract void glVertex3f(float f, float f1, float f2);

    public abstract void glVertex3fv(float af[]);

    public abstract void glVertex3i(int i, int j, int k);

    public abstract void glVertex3iv(int ai[]);

    public abstract void glVertex3s(short word0, short word1, short word2);

    public abstract void glVertex3sv(short aword0[]);

    public abstract void glVertex4d(double d, double d1, double d2, double d3);

    public abstract void glVertex4dv(double ad[]);

    public abstract void glVertex4f(float f, float f1, float f2, float f3);

    public abstract void glVertex4fv(float af[]);

    public abstract void glVertex4i(int i, int j, int k, int l);

    public abstract void glVertex4iv(int ai[]);

    public abstract void glVertex4s(short word0, short word1, short word2, short word3);

    public abstract void glVertex4sv(short aword0[]);

    public abstract void glVertexPointer(int i, int j, NativeArray nativearray);

    public abstract void glViewport(int i, int j, int k, int l);

    public abstract String gluErrorString(int i);

    public abstract String gluErrorUnicodeStringEXT(int i);

    public abstract String gluGetString(int i);

    public abstract void gluOrtho2D(double d, double d1, double d2, double d3);

    public abstract void gluPerspective(double d, double d1, double d2, double d3);

    public abstract void gluPickMatrix(double d, double d1, double d2, double d3, int ai[]);

    public abstract void gluLookAt(double d, double d1, double d2, double d3, double d4, double d5, double d6, 
            double d7, double d8);

    public abstract int gluProject(double d, double d1, double d2, double ad[], 
            double ad1[], int ai[], double ad2[]);

    public abstract int gluUnProject(double d, double d1, double d2, double ad[], 
            double ad1[], int ai[], double ad2[]);

    public abstract int gluScaleImage(int i, int j, int k, int l, Object obj, int i1, int j1, 
            int k1, Object obj1);

    public abstract int gluBuild1DMipmaps(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract int gluBuild1DMipmaps(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract int gluBuild1DMipmaps(int i, int j, int k, int l, int i1, int ai[]);

    public abstract int gluBuild2DMipmaps(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract int gluBuild2DMipmaps(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract int gluBuild2DMipmaps(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glBlendColor(float f, float f1, float f2, float f3);

    public abstract void glBlendEquation(int i);

    public abstract void glDrawRangeElements(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract void glDrawRangeElements(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract void glDrawRangeElements(int i, int j, int k, int l, int i1, int ai[]);

    public abstract void glColorTable(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract void glColorTable(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract void glColorTable(int i, int j, int k, int l, int i1, int ai[]);

    public abstract void glColorTableParameterfv(int i, int j, float af[]);

    public abstract void glColorTableParameteriv(int i, int j, int ai[]);

    public abstract void glCopyColorTable(int i, int j, int k, int l, int i1);

    public abstract void glGetColorTable(int i, int j, int k, byte abyte0[]);

    public abstract void glGetColorTable(int i, int j, int k, short aword0[]);

    public abstract void glGetColorTable(int i, int j, int k, int ai[]);

    public abstract void glGetColorTableParameterfv(int i, int j, float af[]);

    public abstract void glGetColorTableParameteriv(int i, int j, int ai[]);

    public abstract void glColorSubTable(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract void glColorSubTable(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract void glColorSubTable(int i, int j, int k, int l, int i1, int ai[]);

    public abstract void glCopyColorSubTable(int i, int j, int k, int l, int i1);

    public abstract void glConvolutionFilter1D(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract void glConvolutionFilter1D(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract void glConvolutionFilter1D(int i, int j, int k, int l, int i1, int ai[]);

    public abstract void glConvolutionFilter2D(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract void glConvolutionFilter2D(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract void glConvolutionFilter2D(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glConvolutionParameterf(int i, int j, float f);

    public abstract void glConvolutionParameterfv(int i, int j, float af[]);

    public abstract void glConvolutionParameteri(int i, int j, int k);

    public abstract void glConvolutionParameteriv(int i, int j, int ai[]);

    public abstract void glCopyConvolutionFilter1D(int i, int j, int k, int l, int i1);

    public abstract void glCopyConvolutionFilter2D(int i, int j, int k, int l, int i1, int j1);

    public abstract void glGetConvolutionFilter(int i, int j, int k, byte abyte0[]);

    public abstract void glGetConvolutionFilter(int i, int j, int k, short aword0[]);

    public abstract void glGetConvolutionFilter(int i, int j, int k, int ai[]);

    public abstract void glGetConvolutionParameterfv(int i, int j, float af[]);

    public abstract void glGetConvolutionParameteriv(int i, int j, int ai[]);

    public abstract void glGetSeparableFilter(int i, int j, int k, byte abyte0[], byte abyte1[], byte abyte2[]);

    public abstract void glGetSeparableFilter(int i, int j, int k, short aword0[], short aword1[], short aword2[]);

    public abstract void glGetSeparableFilter(int i, int j, int k, int ai[], int ai1[], int ai2[]);

    public abstract void glSeparableFilter2D(int i, int j, int k, int l, int i1, int j1, byte abyte0[], 
            byte abyte1[]);

    public abstract void glSeparableFilter2D(int i, int j, int k, int l, int i1, int j1, short aword0[], 
            short aword1[]);

    public abstract void glSeparableFilter2D(int i, int j, int k, int l, int i1, int j1, int ai[], 
            int ai1[]);

    public abstract void glGetHistogram(int i, boolean flag, int j, int k, byte abyte0[]);

    public abstract void glGetHistogram(int i, boolean flag, int j, int k, short aword0[]);

    public abstract void glGetHistogram(int i, boolean flag, int j, int k, int ai[]);

    public abstract void glGetHistogramParameterfv(int i, int j, float af[]);

    public abstract void glGetHistogramParameteriv(int i, int j, int ai[]);

    public abstract void glGetMinmax(int i, boolean flag, int j, int k, byte abyte0[]);

    public abstract void glGetMinmax(int i, boolean flag, int j, int k, short aword0[]);

    public abstract void glGetMinmax(int i, boolean flag, int j, int k, int ai[]);

    public abstract void glGetMinmaxParameterfv(int i, int j, float af[]);

    public abstract void glGetMinmaxParameteriv(int i, int j, int ai[]);

    public abstract void glHistogram(int i, int j, int k, boolean flag);

    public abstract void glMinmax(int i, int j, boolean flag);

    public abstract void glResetHistogram(int i);

    public abstract void glResetMinmax(int i);

    public abstract void glTexImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, byte abyte0[]);

    public abstract void glTexImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, short aword0[]);

    public abstract void glTexImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int ai[]);

    public abstract void glTexSubImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, byte abyte0[]);

    public abstract void glTexSubImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, short aword0[]);

    public abstract void glTexSubImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, int ai[]);

    public abstract void glCopyTexSubImage3D(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2);

    public abstract void glActiveTextureARB(int i);

    public abstract void glClientActiveTextureARB(int i);

    public abstract void glMultiTexCoord1dARB(int i, double d);

    public abstract void glMultiTexCoord1dvARB(int i, double ad[]);

    public abstract void glMultiTexCoord1fARB(int i, float f);

    public abstract void glMultiTexCoord1fvARB(int i, float af[]);

    public abstract void glMultiTexCoord1iARB(int i, int j);

    public abstract void glMultiTexCoord1ivARB(int i, int ai[]);

    public abstract void glMultiTexCoord1sARB(int i, short word0);

    public abstract void glMultiTexCoord1svARB(int i, short aword0[]);

    public abstract void glMultiTexCoord2dARB(int i, double d, double d1);

    public abstract void glMultiTexCoord2dvARB(int i, double ad[]);

    public abstract void glMultiTexCoord2fARB(int i, float f, float f1);

    public abstract void glMultiTexCoord2fvARB(int i, float af[]);

    public abstract void glMultiTexCoord2iARB(int i, int j, int k);

    public abstract void glMultiTexCoord2ivARB(int i, int ai[]);

    public abstract void glMultiTexCoord2sARB(int i, short word0, short word1);

    public abstract void glMultiTexCoord2svARB(int i, short aword0[]);

    public abstract void glMultiTexCoord3dARB(int i, double d, double d1, double d2);

    public abstract void glMultiTexCoord3dvARB(int i, double ad[]);

    public abstract void glMultiTexCoord3fARB(int i, float f, float f1, float f2);

    public abstract void glMultiTexCoord3fvARB(int i, float af[]);

    public abstract void glMultiTexCoord3iARB(int i, int j, int k, int l);

    public abstract void glMultiTexCoord3ivARB(int i, int ai[]);

    public abstract void glMultiTexCoord3sARB(int i, short word0, short word1, short word2);

    public abstract void glMultiTexCoord3svARB(int i, short aword0[]);

    public abstract void glMultiTexCoord4dARB(int i, double d, double d1, double d2, 
            double d3);

    public abstract void glMultiTexCoord4dvARB(int i, double ad[]);

    public abstract void glMultiTexCoord4fARB(int i, float f, float f1, float f2, float f3);

    public abstract void glMultiTexCoord4fvARB(int i, float af[]);

    public abstract void glMultiTexCoord4iARB(int i, int j, int k, int l, int i1);

    public abstract void glMultiTexCoord4ivARB(int i, int ai[]);

    public abstract void glMultiTexCoord4sARB(int i, short word0, short word1, short word2, short word3);

    public abstract void glMultiTexCoord4svARB(int i, short aword0[]);

    public abstract void glLoadTransposeMatrixfARB(float af[]);

    public abstract void glLoadTransposeMatrixdARB(double ad[]);

    public abstract void glMultTransposeMatrixfARB(float af[]);

    public abstract void glMultTransposeMatrixdARB(double ad[]);

    public abstract void glSampleCoverageARB(float f, boolean flag);

    public abstract void glSamplePassARB(int i);

    public abstract void glCompressedTexImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, byte abyte0[]);

    public abstract void glCompressedTexImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, short aword0[]);

    public abstract void glCompressedTexImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int ai[]);

    public abstract void glCompressedTexImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            byte abyte0[]);

    public abstract void glCompressedTexImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            short aword0[]);

    public abstract void glCompressedTexImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int ai[]);

    public abstract void glCompressedTexImage1DARB(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract void glCompressedTexImage1DARB(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract void glCompressedTexImage1DARB(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glCompressedTexSubImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, byte abyte0[]);

    public abstract void glCompressedTexSubImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, short aword0[]);

    public abstract void glCompressedTexSubImage3DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, int ai[]);

    public abstract void glCompressedTexSubImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, byte abyte0[]);

    public abstract void glCompressedTexSubImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, short aword0[]);

    public abstract void glCompressedTexSubImage2DARB(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int ai[]);

    public abstract void glCompressedTexSubImage1DARB(int i, int j, int k, int l, int i1, int j1, byte abyte0[]);

    public abstract void glCompressedTexSubImage1DARB(int i, int j, int k, int l, int i1, int j1, short aword0[]);

    public abstract void glCompressedTexSubImage1DARB(int i, int j, int k, int l, int i1, int j1, int ai[]);

    public abstract void glGetCompressedTexImageARB(int i, int j, byte abyte0[]);

    public abstract void glGetCompressedTexImageARB(int i, int j, short aword0[]);

    public abstract void glGetCompressedTexImageARB(int i, int j, int ai[]);

    public abstract void glColorTableEXT(int i, int j, int k, int l, int i1, byte abyte0[]);

    public abstract void glColorTableEXT(int i, int j, int k, int l, int i1, short aword0[]);

    public abstract void glColorTableEXT(int i, int j, int k, int l, int i1, int ai[]);

    public abstract void glGetColorTableEXT(int i, int j, int k, byte abyte0[]);

    public abstract void glGetColorTableEXT(int i, int j, int k, short aword0[]);

    public abstract void glGetColorTableEXT(int i, int j, int k, int ai[]);

    public abstract void glGetColorTableParameterivEXT(int i, int j, int ai[]);

    public abstract void glGetColorTableParameterfvEXT(int i, int j, float af[]);

    public abstract void glLockArraysEXT(int i, int j);

    public abstract void glUnlockArraysEXT();

    public abstract void glSecondaryColor3bEXT(byte byte0, byte byte1, byte byte2);

    public abstract void glSecondaryColor3bvEXT(byte abyte0[]);

    public abstract void glSecondaryColor3dEXT(double d, double d1, double d2);

    public abstract void glSecondaryColor3dvEXT(double ad[]);

    public abstract void glSecondaryColor3fEXT(float f, float f1, float f2);

    public abstract void glSecondaryColor3fvEXT(float af[]);

    public abstract void glSecondaryColor3iEXT(int i, int j, int k);

    public abstract void glSecondaryColor3ivEXT(int ai[]);

    public abstract void glSecondaryColor3sEXT(short word0, short word1, short word2);

    public abstract void glSecondaryColor3svEXT(short aword0[]);

    public abstract void glSecondaryColor3ubEXT(byte byte0, byte byte1, byte byte2);

    public abstract void glSecondaryColor3ubvEXT(byte abyte0[]);

    public abstract void glSecondaryColor3uiEXT(int i, int j, int k);

    public abstract void glSecondaryColor3uivEXT(int ai[]);

    public abstract void glSecondaryColor3usEXT(short word0, short word1, short word2);

    public abstract void glSecondaryColor3usvEXT(short aword0[]);

    public abstract void glSecondaryColorPointerEXT(int i, int j, NativeArray nativearray);

    public abstract void glColor1ui(int i);

    public abstract void glSecondaryColor1uiEXT(int i);

    public abstract void glMaterial4f(int i, int j, float f, float f1, float f2, float f3);

    public abstract boolean glGetBoolean(int i);

    public abstract double glGetDouble(int i);

    public abstract float glGetFloat(int i);

    public abstract int glGetInteger(int i);

    public void glDrawPixels(int width, int height, int format, int type, Object o)
    {
        if(o instanceof byte[])
            glDrawPixels(width, height, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glDrawPixels(width, height, format, type, (short[])o);
        else
        if(o instanceof int[])
            glDrawPixels(width, height, format, type, (int[])o);
    }

    public void glGetTexImage(int target, int level, int format, int type, Object o)
    {
        if(o instanceof byte[])
            glGetTexImage(target, level, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glGetTexImage(target, level, format, type, (short[])o);
        else
        if(o instanceof int[])
            glGetTexImage(target, level, format, type, (int[])o);
    }

    public void glReadPixels(int x, int y, int width, int height, int format, int type, Object o)
    {
        if(o instanceof byte[])
            glReadPixels(x, y, width, height, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glReadPixels(x, y, width, height, format, type, (short[])o);
        else
        if(o instanceof int[])
            glReadPixels(x, y, width, height, format, type, (int[])o);
    }

    public void glTexImage1D(int target, int level, int internalformat, int width, int border, int format, int type, 
            Object o)
    {
        if(o instanceof byte[])
            glTexImage1D(target, level, internalformat, width, border, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexImage1D(target, level, internalformat, width, border, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexImage1D(target, level, internalformat, width, border, format, type, (int[])o);
    }

    public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, 
            int type, Object o)
    {
        if(o instanceof byte[])
            glTexImage2D(target, level, internalformat, width, height, border, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexImage2D(target, level, internalformat, width, height, border, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexImage2D(target, level, internalformat, width, height, border, format, type, (int[])o);
    }

    public void glTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, 
            int format, int type, Object o)
    {
        if(o instanceof byte[])
            glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, (int[])o);
    }

    public void glTexSubImage1D(int target, int level, int xoffset, int width, int format, int type, Object o)
    {
        if(o instanceof byte[])
            glTexSubImage1D(target, level, xoffset, width, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexSubImage1D(target, level, xoffset, width, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexSubImage1D(target, level, xoffset, width, format, type, (int[])o);
    }

    public void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, 
            int type, Object o)
    {
        if(o instanceof byte[])
            glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, (int[])o);
    }

    public void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, 
            int depth, int format, int type, Object o)
    {
        if(o instanceof byte[])
            glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, (byte[])o);
        else
        if(o instanceof short[])
            glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, (short[])o);
        else
        if(o instanceof int[])
            glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, (int[])o);
    }

    public String glGetErrorAsString()
    {
        return glGetErrorAsString(glGetError());
    }

    static String glGetErrorAsString(int err)
    {
        switch(err)
        {
        case 0: // '\0'
            return "GL_NO_ERROR";

        case 1280: 
            return "GL_INVALID_ENUM";

        case 1281: 
            return "GL_INVALID_VALUE";

        case 1282: 
            return "GL_INVALID_OPERATION";

        case 1283: 
            return "GL_STACK_OVERFLOW";

        case 1284: 
            return "GL_STACK_UNDERFLOW";

        case 1285: 
            return "GL_OUT_OF_MEMORY";
        }
        return "UNKNOWN ERROR : " + err;
    }

    public void swapBuffers()
    {
        context.swapBuffers();
    }

    public static final boolean supportExtension(String ext)
    {
        return getExtensions().indexOf(ext) != -1;
    }

    public static final String getGLVersion()
    {
//        if(version == null)
//            version = glGetStringPrivete(7938);
        return "1.1";
    }

    public static final String getExtensions()
    {
//        if(extensions == null)
//            extensions = glGetStringPrivete(7939);
        return "GL_EXT_bgra";
    }

    public static final String getVendor()
    {
//        if(vendor == null)
//            vendor = glGetStringPrivete(7936);
        return "";
    }

    public void dispose()
    {
        if(Thread.currentThread() != context.paintthread)
            throw new RuntimeException("freeGraphics() is called from different Thread from the Thread called getGraphics()");
        if(!isphantom)
            context.freeGraphics();
        entity = null;
        isphantom = true;
        released();
        context = null;
    }

    public Object getUserData(int key)
    {
        return context.getUserData(key);
    }

    public void setUserData(int key, Object data)
    {
        context.setUserData(key, data);
    }

    public void removeUserData(int key)
    {
        context.removeUserData(key);
    }

    public void clearUserData()
    {
        context.clearUserData();
    }

    protected void released()
    {
    }

    protected void finalize()
        throws Throwable
    {
        if(context != null)
        {
            entity = null;
            if(!isphantom)
            {
                context.freeGraphics();
                System.err.println("GLGraphics finalized!!! freeGraphics()");
            }
        }
    }

    public boolean needReset()
    {
        return context.needReset();
    }

    public static String version = null;
    private static String extensions = null;
    private static String vendor = null;
    protected GLContext context;
    boolean isphantom;
    GLGraphics entity;

//    static 
//    {
//        try
//        {
//            AccessController.doPrivileged(new PrivilegedAction() {
//
//                public Object run()
//                {
//                    System.loadLibrary("keel_gl");
//                    return null;
//                }
//
//            }
//);
//        }
//        catch(Error e)
//        {
//            System.out.println(e);
//            version = "1.1";
//            extensions = "";
//        }
//    }
}
